윈도 파일 프로그래밍

윈도 파일 프로그래밍뭐니 뭐니 해도 시스템 프로그래밍의 핵심은 파일. 리눅스 프로그래밍에 익숙한 관계로 리눅스(윈도에서 파일은 커널 Object로 관리된다. 파일을 포함한 모든 커널 Object는 Create로 시작하는 함수로 handle을 얻을 수 있다. 핸들은 커널 Object를 가리킨다. 파일외에 관리하는 커널 객체로는 아래와 같은 것들이 있다. 1...

윈도 IPC 프로그래밍

윈도 IPC 프로그래밍Inter Process Communication의 줄임말로, 내부 프로세스간 통신을 말한다. 내부 프로세스 혹은 thread간 통신을 위해서는 IPC 설비들이 필요하다. IPC(...

이벤트 객체

이벤트 객체윈도 네트워크 프로그래밍을 하다 보니 이벤트를 다루어야 하는 경우가 생겼다. 그래서 이벤트 객체에 대해서 공부해볼려고 위키페이지를 만들었다.유닉스와 리눅스는 시그널을 이용해서 상태 정보를 전달하고 사건을 동기화 시킬 수 있다. 윈도는 시그널 시스템을 제공하지 않는다. 대신 이벤트 객체를 이용해서 동기화를 달성한다.이벤트 객체는 독립적인 객체로써...

윈도 익명 파이프

윈도 익명 파이프와 동일한 특성을 가지며, 사용방법 역시 유사하다. 즉 부모 프로세스와 자식 프로세스간의 통신 읽기전용과 쓰기전용의 두개의 파이프로 전 이중 통신의 구현 다른 프로세스는 참조할 수 없음.(참조할 이름이 없기 때문에)리눅스에 pipe(2)가 있다면 윈도는 CreatePipe(BOOL WINAPI CreatePipe( __out PHAN...

윈도 시스템 프로그래밍 : named pipe

윈도 시스템 프로그래밍 윈도 역시 named 1. 이름을 가진다. 1. 이름을 가지므로 어디에서든 (이름으로)접근할 수 있다. 1. 원격의 프로세스와 통신이 가능하다는 점이 리눅스와 다른 특징이다. 이를 위해서 "Universal Name Convention"형식으로 파이프 이름을 생성한다. (형식 1. 리눅스는 네임드 파이프와 파일 기술자가 1 1....

윈도우즈 멀티프로세스 프로그래밍

윈도우즈 멀티프로세스 프로그래밍윈도우즈에서의 프로세스를 다루는 방법들에 대해서 알아볼 생각이다.음 윈도우는 fork() 를 제공하지 않는다는 것을 알았다. 인터넷을 뒤져서 CreateProcess라는 비슷한 함수를 제공하고 있다는 것을 알았다. 그런데, 문서를 읽어보니 프로세스를 복사해서 분기시키는 fork()의 개념이 아닌 새로운 프로세스 이미지를 생성...

윈도우즈 멀티 쓰레드 프로그래밍

윈도우즈 멀티 쓰레드 프로그래밍은 리눅스(커널에서 생성한 객체로 시스템 리소스의 정보를 담고 있는 데이터 블록이다. 커널에서 프로세스 혹은 쓰레드를 제어하기 위해 사용하는 정보 데이터 블럭이다. 리눅스(윈도에서 커널의 오브젝트를 가리키는 객체를 핸들이라고 한다. 역시 리눅스와 용어가 틀릴 뿐이다. 모든 것을 파일(다음은 윈도 커널 오브젝트의 종류다. 이벤...